#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
//1
size_t sim_strlen1(const char* str)
{
	assert(str);
	int count = 0;
	while (*str)
	{
		count++;
		str++;
	}
	return count;
}

//2
size_t sim_strlen2(const char* str)
{
	assert(str);
	const char* p = str;
	if (*p)
		return sim_strlen2(p + 1) + 1;
	else
		return 0;
}

//3
size_t sim_strlen3(const char* str)
{
	assert(str);
	const char* p = str;
	while (*p++)
	{
		;
	}
	return (p - str - 1);
}

//int main()
//{
//	const char* p = "abcdef";
//	printf("%u", sim_strlen3(p));
//	return 0;
//}